<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>

    /* 
    - 如何理解下面2句重要的话(编码演示说明)?
      - 2个引用变量指向同一个对象, 通过一个引用改变对象内部的数据, 另一个引用变量能看到
      - 2个引用变量指向同一个对象, 让一个引用变量指向一个新的对象, 另一个变量看到的还是以前的对象(没变)
    */
    var a = {m: 1}
    var b = a

    a.m = 2
    console.log(b.m)  // 2

    a = {m: 3}
    console.log(b.m)  // 2

    var a2 = {m: 1}
    var b2 = a2
    function fn (a2) {
      a2 = {m: 2}
    }
    fn(a2)
    console.log(a2.m, b2.m) // 1 1

    function fn2 (a2) {
      a2.m = 3
    }
    fn2(a2)
    console.log(a2.m, b2.m)  // 3 3

  </script>
</body>
</html>